#ifndef __WAVEFILE_INCLUDED
#define __WAVEFILE_INCLUDED


namespace Audio
{	
	namespace IO
	{			
		class WaveFile : public AudioFile
		{
		public:
			WaveFile(const String& fileName);
			~WaveFile();
			

			virtual UINT32 DataPosition();
			virtual UINT32 DataSize();

			virtual void   LoadInfo();	

			virtual void*	GetInfo();
			virtual UINT32	GetInfoSize();
			

			UINT32 GetChannelCount() const;
			UINT32 GetSampleRate() const;
			UINT32 GetBitsPerSample() const;
			UINT32 GetSampleCount() const;
		protected:

			//const	WAVEFORMATEX& WaveFormat() const { return wfm;}			
			//UINT32  GetDataSize() const { return dataSize; }		

		private:
			void*					wfm;
			UINT32					wfmSize;
			UINT32					dataPosition;
			UINT32					dataSize;		
		};
	}
	

}
#endif